{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 9.3.3 An Application to Heart Disease Data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-09-19T12:14:59.988338Z",
     "start_time": "2023-09-19T12:14:59.072688Z"
    }
   },
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.discriminant_analysis import LinearDiscriminantAnalysis as LDA\n",
    "from sklearn.svm import SVC\n",
    "from sklearn.metrics import roc_curve,roc_auc_score\n",
    "\n",
    "import matplotlib.pyplot as plt\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-09-19T12:15:00.001339Z",
     "start_time": "2023-09-19T12:14:59.988817Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(303, 14)\n"
     ]
    },
    {
     "data": {
      "text/plain": "   Age  Sex     ChestPain  RestBP  Chol  Fbs  RestECG  MaxHR  ExAng  Oldpeak  \\\n1   63    1       typical     145   233    1        2    150      0      2.3   \n2   67    1  asymptomatic     160   286    0        2    108      1      1.5   \n3   67    1  asymptomatic     120   229    0        2    129      1      2.6   \n4   37    1    nonanginal     130   250    0        0    187      0      3.5   \n5   41    0    nontypical     130   204    0        2    172      0      1.4   \n\n   Slope   Ca        Thal  AHD  \n1      3  0.0       fixed   No  \n2      2  3.0      normal  Yes  \n3      2  2.0  reversable  Yes  \n4      3  0.0      normal   No  \n5      1  0.0      normal   No  ",
      "text/html": "<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>Age</th>\n      <th>Sex</th>\n      <th>ChestPain</th>\n      <th>RestBP</th>\n      <th>Chol</th>\n      <th>Fbs</th>\n      <th>RestECG</th>\n      <th>MaxHR</th>\n      <th>ExAng</th>\n      <th>Oldpeak</th>\n      <th>Slope</th>\n      <th>Ca</th>\n      <th>Thal</th>\n      <th>AHD</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>1</th>\n      <td>63</td>\n      <td>1</td>\n      <td>typical</td>\n      <td>145</td>\n      <td>233</td>\n      <td>1</td>\n      <td>2</td>\n      <td>150</td>\n      <td>0</td>\n      <td>2.3</td>\n      <td>3</td>\n      <td>0.0</td>\n      <td>fixed</td>\n      <td>No</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>67</td>\n      <td>1</td>\n      <td>asymptomatic</td>\n      <td>160</td>\n      <td>286</td>\n      <td>0</td>\n      <td>2</td>\n      <td>108</td>\n      <td>1</td>\n      <td>1.5</td>\n      <td>2</td>\n      <td>3.0</td>\n      <td>normal</td>\n      <td>Yes</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>67</td>\n      <td>1</td>\n      <td>asymptomatic</td>\n      <td>120</td>\n      <td>229</td>\n      <td>0</td>\n      <td>2</td>\n      <td>129</td>\n      <td>1</td>\n      <td>2.6</td>\n      <td>2</td>\n      <td>2.0</td>\n      <td>reversable</td>\n      <td>Yes</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>37</td>\n      <td>1</td>\n      <td>nonanginal</td>\n      <td>130</td>\n      <td>250</td>\n      <td>0</td>\n      <td>0</td>\n      <td>187</td>\n      <td>0</td>\n      <td>3.5</td>\n      <td>3</td>\n      <td>0.0</td>\n      <td>normal</td>\n      <td>No</td>\n    </tr>\n    <tr>\n      <th>5</th>\n      <td>41</td>\n      <td>0</td>\n      <td>nontypical</td>\n      <td>130</td>\n      <td>204</td>\n      <td>0</td>\n      <td>2</td>\n      <td>172</td>\n      <td>0</td>\n      <td>1.4</td>\n      <td>1</td>\n      <td>0.0</td>\n      <td>normal</td>\n      <td>No</td>\n    </tr>\n  </tbody>\n</table>\n</div>"
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data = pd.read_csv(r'../data/Heart.csv',index_col=0)\n",
    "print(data.shape)\n",
    "data.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Before proceding further, i would request you go take a look at the dataset, go through the columns, what does they represent, you may this this - http://search.r-project.org/library/kmed/html/heart.html\n",
    "(PS. I literally googled the types of chest pain to know more about them,LOL)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Check for null values"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-09-19T12:15:00.012060Z",
     "start_time": "2023-09-19T12:15:00.000220Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": "Age          0\nSex          0\nChestPain    0\nRestBP       0\nChol         0\nFbs          0\nRestECG      0\nMaxHR        0\nExAng        0\nOldpeak      0\nSlope        0\nCa           4\nThal         2\nAHD          0\ndtype: int64"
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.isnull().sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-09-19T12:15:00.012395Z",
     "start_time": "2023-09-19T12:15:00.006888Z"
    }
   },
   "outputs": [],
   "source": [
    "#remove the null values\n",
    "data.dropna(inplace = True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Enocide the categorical variables"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-09-19T12:15:00.049274Z",
     "start_time": "2023-09-19T12:15:00.010578Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": "['ChestPain', 'Thal', 'AHD']"
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cat_cols = [col for col in data.columns if data[col].dtype == 'O']\n",
    "cat_cols"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-09-19T12:15:00.049970Z",
     "start_time": "2023-09-19T12:15:00.017163Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "ChestPain\n",
      "['typical' 'asymptomatic' 'nonanginal' 'nontypical']\n",
      "\n",
      "Thal\n",
      "['fixed' 'normal' 'reversable']\n",
      "\n",
      "AHD\n",
      "['No' 'Yes']\n"
     ]
    }
   ],
   "source": [
    "for col in cat_cols:\n",
    "    print(col)\n",
    "    print(data[col].unique())\n",
    "    print()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-09-19T12:15:00.050439Z",
     "start_time": "2023-09-19T12:15:00.021134Z"
    }
   },
   "outputs": [],
   "source": [
    "data['ChestPain'] = data['ChestPain'].map({'typical':1, 'asymptomatic':2, 'nonanginal':3, 'nontypical':4})\n",
    "data['Thal'] = data['Thal'].map({'fixed':1, 'normal':2, 'reversable':3})\n",
    "data['AHD'] = data['AHD'].map({'Yes':1,'No':0})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-09-19T12:15:00.163801Z",
     "start_time": "2023-09-19T12:15:00.026299Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": "   Age  Sex  ChestPain  RestBP  Chol  Fbs  RestECG  MaxHR  ExAng  Oldpeak  \\\n1   63    1          1     145   233    1        2    150      0      2.3   \n2   67    1          2     160   286    0        2    108      1      1.5   \n3   67    1          2     120   229    0        2    129      1      2.6   \n4   37    1          3     130   250    0        0    187      0      3.5   \n5   41    0          4     130   204    0        2    172      0      1.4   \n\n   Slope   Ca  Thal  AHD  \n1      3  0.0     1    0  \n2      2  3.0     2    1  \n3      2  2.0     3    1  \n4      3  0.0     2    0  \n5      1  0.0     2    0  ",
      "text/html": "<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>Age</th>\n      <th>Sex</th>\n      <th>ChestPain</th>\n      <th>RestBP</th>\n      <th>Chol</th>\n      <th>Fbs</th>\n      <th>RestECG</th>\n      <th>MaxHR</th>\n      <th>ExAng</th>\n      <th>Oldpeak</th>\n      <th>Slope</th>\n      <th>Ca</th>\n      <th>Thal</th>\n      <th>AHD</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>1</th>\n      <td>63</td>\n      <td>1</td>\n      <td>1</td>\n      <td>145</td>\n      <td>233</td>\n      <td>1</td>\n      <td>2</td>\n      <td>150</td>\n      <td>0</td>\n      <td>2.3</td>\n      <td>3</td>\n      <td>0.0</td>\n      <td>1</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>67</td>\n      <td>1</td>\n      <td>2</td>\n      <td>160</td>\n      <td>286</td>\n      <td>0</td>\n      <td>2</td>\n      <td>108</td>\n      <td>1</td>\n      <td>1.5</td>\n      <td>2</td>\n      <td>3.0</td>\n      <td>2</td>\n      <td>1</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>67</td>\n      <td>1</td>\n      <td>2</td>\n      <td>120</td>\n      <td>229</td>\n      <td>0</td>\n      <td>2</td>\n      <td>129</td>\n      <td>1</td>\n      <td>2.6</td>\n      <td>2</td>\n      <td>2.0</td>\n      <td>3</td>\n      <td>1</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>37</td>\n      <td>1</td>\n      <td>3</td>\n      <td>130</td>\n      <td>250</td>\n      <td>0</td>\n      <td>0</td>\n      <td>187</td>\n      <td>0</td>\n      <td>3.5</td>\n      <td>3</td>\n      <td>0.0</td>\n      <td>2</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>5</th>\n      <td>41</td>\n      <td>0</td>\n      <td>4</td>\n      <td>130</td>\n      <td>204</td>\n      <td>0</td>\n      <td>2</td>\n      <td>172</td>\n      <td>0</td>\n      <td>1.4</td>\n      <td>1</td>\n      <td>0.0</td>\n      <td>2</td>\n      <td>0</td>\n    </tr>\n  </tbody>\n</table>\n</div>"
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Dividing into train and test"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-09-19T12:15:00.164093Z",
     "start_time": "2023-09-19T12:15:00.030732Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(207, 13) (90, 13)\n"
     ]
    }
   ],
   "source": [
    "X_train,X_test,y_train,y_test = train_test_split(data.drop('AHD',axis=1),data['AHD'],test_size = 0.3,random_state = 0)\n",
    "print(X_train.shape,X_test.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## LDA"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-09-19T12:15:00.164393Z",
     "start_time": "2023-09-19T12:15:00.035259Z"
    }
   },
   "outputs": [],
   "source": [
    "lda = LDA()\n",
    "lda.fit(X_train,y_train)\n",
    "\n",
    "lda_probs = lda.predict_proba(X_test)[:,1]\n",
    "fpr_lda, tpr_lda, _ = roc_curve(y_test, lda_probs)\n",
    "auc_lda = roc_auc_score(y_test, lda_probs)\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Support Vector Classifier"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-09-19T12:15:00.164982Z",
     "start_time": "2023-09-19T12:15:00.042033Z"
    }
   },
   "outputs": [],
   "source": [
    "# from book : \n",
    "# svc is eqvivalen to svm with a polynomial kerenel, and degree = 1\n",
    "svc = SVC(kernel='poly',degree = 1,probability=True) #probability = True as we want the predicted probs\n",
    "                                                     # which will be used to calculate fpr,tpr\n",
    "svc.fit(X_train,y_train)\n",
    "\n",
    "svc_probs = svc.predict_proba(X_test)[:,1]\n",
    "fpr_svc, tpr_svc, _ = roc_curve(y_test, svc_probs)\n",
    "auc_svc = roc_auc_score(y_test, svc_probs)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-09-19T12:15:00.372926Z",
     "start_time": "2023-09-19T12:15:00.052308Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": "<Figure size 600x600 with 1 Axes>",
      "image/png": "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"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize = (6,6))\n",
    "plt.plot(fpr_lda,tpr_lda,label=\"LDA -  auc=\"+str(auc_lda)[0:4],c = 'b')\n",
    "plt.plot(fpr_svc,tpr_svc,label=\"SVC -  auc=\"+str(auc_svc)[0:4],c = 'r')\n",
    "plt.plot([0,1],[0,1],alpha = 0.1,c = 'b')\n",
    "\n",
    "plt.legend(loc=4)\n",
    "plt.xlabel('False Positive Rate')\n",
    "plt.ylabel('True Positive Rate')\n",
    "plt.title('ROC curve for test data')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Support Vector Machine"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-09-19T12:15:25.148715Z",
     "start_time": "2023-09-19T12:15:00.204261Z"
    }
   },
   "outputs": [],
   "source": [
    "fpr_list = []\n",
    "tpr_list = []\n",
    "for c in [1,10,20]:\n",
    "    svm = SVC(kernel='linear',probability=True,C=c)\n",
    "    svm.fit(X_train,y_train)\n",
    "    \n",
    "\n",
    "    svm_probs = svm.predict_proba(X_test)[::,1]\n",
    "    fpr, tpr, _ = roc_curve(y_test, svm_probs)\n",
    "    fpr_list.append(fpr)\n",
    "    tpr_list.append(tpr)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-09-19T12:15:25.221033Z",
     "start_time": "2023-09-19T12:15:25.159464Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": "[<matplotlib.lines.Line2D at 0x146a41820>]"
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": "<Figure size 600x600 with 1 Axes>",
      "image/png": "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"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize = (6,6))\n",
    "plt.plot(fpr_list[0],tpr_list[0],label = 'SVM gamma = 10e-3')\n",
    "plt.plot(fpr_list[1],tpr_list[1],label = 'SVM gamma = 10e-2')\n",
    "plt.plot(fpr_list[2],tpr_list[2],label = 'SVM gamma = 10e-1')\n",
    "\n",
    "\n",
    "plt.plot([0,1],[0,1],alpha = 0.1,c = 'b')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2023-09-19T12:15:25.221727Z",
     "start_time": "2023-09-19T12:15:25.215220Z"
    }
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
